import java.lang.reflect.Array;

//class MyArray<T>{
//    //public T[] object = new T[3];
//    public T[] object = (T[])new Object[3];
//
//    public T getPos(int pos){
//        return object[pos];
//    }
//    public void setPos(int pos, T val){
//        object[pos] = val;
//    }
//}

class MyArray<E>{
    //public T[] object = new T[3];
//    public Object[] object = new Object[3];
//    public E getPos2(int pos){
//        return (E)object[pos];
//    }

    public E[] obj;

    public MyArray(Class<E> clazz , int capacity){
        obj = (E[]) Array.newInstance(clazz,capacity);
    }
    public E getPos(int pos){
        return obj[pos];
    }
    public void setPos(int pos, E val){
        obj[pos] = val;
    }
}
public class Test {
    public static void main(String[] args) {
        MyArray<Integer> myArray1 = new MyArray<>(Integer.class,10);
        myArray1.setPos(0, 1);
        Integer a1 = myArray1.getPos(0);


    }
//        System.out.println("========================");
//        MyArray<String> myArray2 = new MyArray<>();
//        myArray2.setPos(0,"hello");
//        String s1 = myArray2.getPos(0);
//    }
//    public static void main(String[] args) {
//        Integer a = 100;
//        Integer b = 100;
//        System.out.println(a == b);
//    }
//    public static void main2(String[] args) {
//        Integer val1 = 10;
////        int a = val1;//自动拆箱
//        int a = val1.intValue();//显式拆箱
//        System.out.println(a);
//    }
//    public static void main1(String[] args) {
//        int a = 10;
////        Integer val = a;//自动装箱
////        Integer val = new Integer(a);//显式装箱
//        Integer val = Integer.valueOf(a);//显式装箱
//        System.out.println(val);
//    }
}
